﻿var _util = null;
usuarioId = "";

$(function () {
    $("input[id$='btnAdionaIdioma']").click(function (e) {
        e.preventDefault();
        var idiomaObj = GetIdiomaObject();

        var idiomaId = $("input[id$='IdiomaId']").val();
        var nivel = $("select[id$='Nivel'] option:selected").val();
        var alerta = new Alert();
        alerta.Name = "erroGeral";
        if (!idiomaObj.IdiomaId || idiomaObj.IdiomaId == -1) {
            alerta.AddMessage("Idioma inválido");
        }
        if (!idiomaObj.Nivel || idiomaObj.Nivel == "") {
            alerta.AddMessage("Nível inválido");
        }
        if (alerta.HasMessage()) {
            alerta.Type = AlertType.Error;
            alerta.Show();
            return;
        }
        idiomaObj.Salvar(function (e, success) {
            if (success == true) {
                if (e.d && e.d.AlertType != undefined) {
                    $("tr[idioma='" + idiomaId + "']:first").remove();
                    alerta.Type = e.d.AlertType;
                    var itens = e.d.Messages;
                    for (var i in itens) {
                        alerta.AddMessage(itens[i]);
                    }
                    if (e.d.Show && e.d.Show == true) {
                        alerta.Show();
                    }
                    var idUsuario = idiomaObj.UsuarioId || idiomaObj.VagaId;
                    var nivelText = "B" == nivel ? "BÁSICO" : "I" == nivel ? "INTERMEDIÁRIO" : "AVANÇADO";

                    var tbody = "<tr idioma='" + idiomaId + "'><td>" + $("input[id$='Nome']").val() + "</td><td>" + nivelText +
                        "</td><td><input type='button' id='btnRemove' onclick='RemoveItem(" + idiomaId + "," + idUsuario +
                        ", this)' class='btn btn-danger' value='remover'/></td></tr>";


                    $('table[id$="gridIdiomas"] tr:last').after(tbody);
                    $("input[id$='IdiomaId']").val("");
                    $("input[id$='Nome']").val("");
                    $("select[id$='Nivel'] option:selected").removeAttr("selected");
                    $("select[id$='Nivel'] option:first").attr("selected", "selected");
                } else {
                    if (e.responseText) {
                        alerta.Type = 2;
                        alerta.AddMessage(e.responseText);
                    } else {
                        alerta.Type = 1;
                        alerta.AddMessage("Retorno inválido, o objeto retornado não está em um formato correto")
                    }
                    alerta.Show();
                }

            } else {
                alerta.Type = 1;
                alerta.AddMessage(e.responseText);
                alerta.Show();
            }
        });
        return false;
    });
});

function RemoveItem(idioma, id, item) {
    var alerta = new Alert();
    alerta.Name = "erroGeral";
    var idiomaObj = GetIdiomaObject({IdiomaId: idioma, Id: id});

    if (alerta.HasMessage()) {
        alerta.Type = AlertType.Error;
        alerta.Show();
        return;
    }
    idiomaObj.Excluir(function (e, success) {
        if (success == true) {
            if (e.d && e.d.AlertType != undefined) {
                alerta.Type = e.d.AlertType;
                for (var i in e.d.Messages) {
                    alerta.AddMessage(e.d.Messages[i]);
                }
                if (e.d.Show && e.d.Show == true) {
                    alerta.Show();
                }
                $(item).parent().parent().remove();
            } else {
                if (e.responseText) {
                    alerta.Type = 2;
                    alerta.AddMessage(e.responseText);
                } else {
                    alerta.Type = 1;
                    alerta.AddMessage("Retorno inválido, o objeto retornado não está em um formato correto")
                }
                alerta.Show();
            }

        } else {
            alerta.Type = 1;
            alerta.AddMessage(e.responseText);
            alerta.Show();
        }
    });
}

function getItemIdioma(ul, item) {

    var inner_html = '<a><div class="list_item_container"><div class=""><strong>Idioma:</strong> ' +
                            item.Nome + '</div></div></a>';
    return $("<li style='width:350px'></li>")
            .data("item.autocomplete", item)
            .append(inner_html)
            .appendTo(ul);
}

function getErrorIdioma(e) {
    var _alert = new Alert();
    _alert.Name = "erroGeral";
    _alert.Type = AlertType.Error;
    _alert.AddMessage(e.d ? e.d : e.responseText);
    _alert.Show();
}
function selectedItemIdioma(event, ui, context) {
    var item = ui.item && ui.item.value ? ui.item : context;
    if (item.IdiomaId) {
        $("input[id$='IdiomaId']").val(item.IdiomaId.toString(10))
    }
}